home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / stringprep.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  15KB  |  805 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. '''Library that exposes various tables found in the StringPrep RFC 3454.
  5.  
  6. There are two kinds of tables: sets, for which a member test is provided,
  7. and mappings, for which a mapping function is provided.
  8. '''
  9. import unicodedata
  10. if not unicodedata.unidata_version == '3.2.0':
  11.     raise AssertionError
  12.  
  13. def in_table_a1(code):
  14.     if unicodedata.category(code) != 'Cn':
  15.         return False
  16.     
  17.     c = ord(code)
  18.     if c <= c:
  19.         pass
  20.     elif c < 65008:
  21.         return False
  22.     
  23.     return c & 65535 not in (65534, 65535)
  24.  
  25. b1_set = set([
  26.     173,
  27.     847,
  28.     6150,
  29.     6155,
  30.     6156,
  31.     6157,
  32.     8203,
  33.     8204,
  34.     8205,
  35.     8288,
  36.     65279] + range(65024, 65040))
  37.  
  38. def in_table_b1(code):
  39.     return ord(code) in b1_set
  40.  
  41. b3_exceptions = {
  42.     181: u'\xce\xbc',
  43.     223: u'ss',
  44.     304: u'i\xcc\x87',
  45.     329: u'\xca\xbcn',
  46.     383: u's',
  47.     496: u'j\xcc\x8c',
  48.     837: u'\xce\xb9',
  49.     890: u' \xce\xb9',
  50.     912: u'\xce\xb9\xcc\x88\xcc\x81',
  51.     944: u'\xcf\x85\xcc\x88\xcc\x81',
  52.     962: u'\xcf\x83',
  53.     976: u'\xce\xb2',
  54.     977: u'\xce\xb8',
  55.     978: u'\xcf\x85',
  56.     979: u'\xcf\x8d',
  57.     980: u'\xcf\x8b',
  58.     981: u'\xcf\x86',
  59.     982: u'\xcf\x80',
  60.     1008: u'\xce\xba',
  61.     1009: u'\xcf\x81',
  62.     1010: u'\xcf\x83',
  63.     1013: u'\xce\xb5',
  64.     1415: u'\xd5\xa5\xd6\x82',
  65.     7830: u'h\xcc\xb1',
  66.     7831: u't\xcc\x88',
  67.     7832: u'w\xcc\x8a',
  68.     7833: u'y\xcc\x8a',
  69.     7834: u'a\xca\xbe',
  70.     7835: u'\xe1\xb9\xa1',
  71.     8016: u'\xcf\x85\xcc\x93',
  72.     8018: u'\xcf\x85\xcc\x93\xcc\x80',
  73.     8020: u'\xcf\x85\xcc\x93\xcc\x81',
  74.     8022: u'\xcf\x85\xcc\x93\xcd\x82',
  75.     8064: u'\xe1\xbc\x80\xce\xb9',
  76.     8065: u'\xe1\xbc\x81\xce\xb9',
  77.     8066: u'\xe1\xbc\x82\xce\xb9',
  78.     8067: u'\xe1\xbc\x83\xce\xb9',
  79.     8068: u'\xe1\xbc\x84\xce\xb9',
  80.     8069: u'\xe1\xbc\x85\xce\xb9',
  81.     8070: u'\xe1\xbc\x86\xce\xb9',
  82.     8071: u'\xe1\xbc\x87\xce\xb9',
  83.     8072: u'\xe1\xbc\x80\xce\xb9',
  84.     8073: u'\xe1\xbc\x81\xce\xb9',
  85.     8074: u'\xe1\xbc\x82\xce\xb9',
  86.     8075: u'\xe1\xbc\x83\xce\xb9',
  87.     8076: u'\xe1\xbc\x84\xce\xb9',
  88.     8077: u'\xe1\xbc\x85\xce\xb9',
  89.     8078: u'\xe1\xbc\x86\xce\xb9',
  90.     8079: u'\xe1\xbc\x87\xce\xb9',
  91.     8080: u'\xe1\xbc\xa0\xce\xb9',
  92.     8081: u'\xe1\xbc\xa1\xce\xb9',
  93.     8082: u'\xe1\xbc\xa2\xce\xb9',
  94.     8083: u'\xe1\xbc\xa3\xce\xb9',
  95.     8084: u'\xe1\xbc\xa4\xce\xb9',
  96.     8085: u'\xe1\xbc\xa5\xce\xb9',
  97.     8086: u'\xe1\xbc\xa6\xce\xb9',
  98.     8087: u'\xe1\xbc\xa7\xce\xb9',
  99.     8088: u'\xe1\xbc\xa0\xce\xb9',
  100.     8089: u'\xe1\xbc\xa1\xce\xb9',
  101.     8090: u'\xe1\xbc\xa2\xce\xb9',
  102.     8091: u'\xe1\xbc\xa3\xce\xb9',
  103.     8092: u'\xe1\xbc\xa4\xce\xb9',
  104.     8093: u'\xe1\xbc\xa5\xce\xb9',
  105.     8094: u'\xe1\xbc\xa6\xce\xb9',
  106.     8095: u'\xe1\xbc\xa7\xce\xb9',
  107.     8096: u'\xe1\xbd\xa0\xce\xb9',
  108.     8097: u'\xe1\xbd\xa1\xce\xb9',
  109.     8098: u'\xe1\xbd\xa2\xce\xb9',
  110.     8099: u'\xe1\xbd\xa3\xce\xb9',
  111.     8100: u'\xe1\xbd\xa4\xce\xb9',
  112.     8101: u'\xe1\xbd\xa5\xce\xb9',
  113.     8102: u'\xe1\xbd\xa6\xce\xb9',
  114.     8103: u'\xe1\xbd\xa7\xce\xb9',
  115.     8104: u'\xe1\xbd\xa0\xce\xb9',
  116.     8105: u'\xe1\xbd\xa1\xce\xb9',
  117.     8106: u'\xe1\xbd\xa2\xce\xb9',
  118.     8107: u'\xe1\xbd\xa3\xce\xb9',
  119.     8108: u'\xe1\xbd\xa4\xce\xb9',
  120.     8109: u'\xe1\xbd\xa5\xce\xb9',
  121.     8110: u'\xe1\xbd\xa6\xce\xb9',
  122.     8111: u'\xe1\xbd\xa7\xce\xb9',
  123.     8114: u'\xe1\xbd\xb0\xce\xb9',
  124.     8115: u'\xce\xb1\xce\xb9',
  125.     8116: u'\xce\xac\xce\xb9',
  126.     8118: u'\xce\xb1\xcd\x82',
  127.     8119: u'\xce\xb1\xcd\x82\xce\xb9',
  128.     8124: u'\xce\xb1\xce\xb9',
  129.     8126: u'\xce\xb9',
  130.     8130: u'\xe1\xbd\xb4\xce\xb9',
  131.     8131: u'\xce\xb7\xce\xb9',
  132.     8132: u'\xce\xae\xce\xb9',
  133.     8134: u'\xce\xb7\xcd\x82',
  134.     8135: u'\xce\xb7\xcd\x82\xce\xb9',
  135.     8140: u'\xce\xb7\xce\xb9',
  136.     8146: u'\xce\xb9\xcc\x88\xcc\x80',
  137.     8147: u'\xce\xb9\xcc\x88\xcc\x81',
  138.     8150: u'\xce\xb9\xcd\x82',
  139.     8151: u'\xce\xb9\xcc\x88\xcd\x82',
  140.     8162: u'\xcf\x85\xcc\x88\xcc\x80',
  141.     8163: u'\xcf\x85\xcc\x88\xcc\x81',
  142.     8164: u'\xcf\x81\xcc\x93',
  143.     8166: u'\xcf\x85\xcd\x82',
  144.     8167: u'\xcf\x85\xcc\x88\xcd\x82',
  145.     8178: u'\xe1\xbd\xbc\xce\xb9',
  146.     8179: u'\xcf\x89\xce\xb9',
  147.     8180: u'\xcf\x8e\xce\xb9',
  148.     8182: u'\xcf\x89\xcd\x82',
  149.     8183: u'\xcf\x89\xcd\x82\xce\xb9',
  150.     8188: u'\xcf\x89\xce\xb9',
  151.     8360: u'rs',
  152.     8450: u'c',
  153.     8451: u'\xc2\xb0c',
  154.     8455: u'\xc9\x9b',
  155.     8457: u'\xc2\xb0f',
  156.     8459: u'h',
  157.     8460: u'h',
  158.     8461: u'h',
  159.     8464: u'i',
  160.     8465: u'i',
  161.     8466: u'l',
  162.     8469: u'n',
  163.     8470: u'no',
  164.     8473: u'p',
  165.     8474: u'q',
  166.     8475: u'r',
  167.     8476: u'r',
  168.     8477: u'r',
  169.     8480: u'sm',
  170.     8481: u'tel',
  171.     8482: u'tm',
  172.     8484: u'z',
  173.     8488: u'z',
  174.     8492: u'b',
  175.     8493: u'c',
  176.     8496: u'e',
  177.     8497: u'f',
  178.     8499: u'm',
  179.     8510: u'\xce\xb3',
  180.     8511: u'\xcf\x80',
  181.     8517: u'd',
  182.     13169: u'hpa',
  183.     13171: u'au',
  184.     13173: u'ov',
  185.     13184: u'pa',
  186.     13185: u'na',
  187.     13186: u'\xce\xbca',
  188.     13187: u'ma',
  189.     13188: u'ka',
  190.     13189: u'kb',
  191.     13190: u'mb',
  192.     13191: u'gb',
  193.     13194: u'pf',
  194.     13195: u'nf',
  195.     13196: u'\xce\xbcf',
  196.     13200: u'hz',
  197.     13201: u'khz',
  198.     13202: u'mhz',
  199.     13203: u'ghz',
  200.     13204: u'thz',
  201.     13225: u'pa',
  202.     13226: u'kpa',
  203.     13227: u'mpa',
  204.     13228: u'gpa',
  205.     13236: u'pv',
  206.     13237: u'nv',
  207.     13238: u'\xce\xbcv',
  208.     13239: u'mv',
  209.     13240: u'kv',
  210.     13241: u'mv',
  211.     13242: u'pw',
  212.     13243: u'nw',
  213.     13244: u'\xce\xbcw',
  214.     13245: u'mw',
  215.     13246: u'kw',
  216.     13247: u'mw',
  217.     13248: u'k\xcf\x89',
  218.     13249: u'm\xcf\x89',
  219.     13251: u'bq',
  220.     13254: u'c\xe2\x88\x95kg',
  221.     13255: u'co.',
  222.     13256: u'db',
  223.     13257: u'gy',
  224.     13259: u'hp',
  225.     13261: u'kk',
  226.     13262: u'km',
  227.     13271: u'ph',
  228.     13273: u'ppm',
  229.     13274: u'pr',
  230.     13276: u'sv',
  231.     13277: u'wb',
  232.     64256: u'ff',
  233.     64257: u'fi',
  234.     64258: u'fl',
  235.     64259: u'ffi',
  236.     64260: u'ffl',
  237.     64261: u'st',
  238.     64262: u'st',
  239.     64275: u'\xd5\xb4\xd5\xb6',
  240.     64276: u'\xd5\xb4\xd5\xa5',
  241.     64277: u'\xd5\xb4\xd5\xab',
  242.     64278: u'\xd5\xbe\xd5\xb6',
  243.     64279: u'\xd5\xb4\xd5\xad',
  244.     119808: u'a',
  245.     119809: u'b',
  246.     119810: u'c',
  247.     119811: u'd',
  248.     119812: u'e',
  249.     119813: u'f',
  250.     119814: u'g',
  251.     119815: u'h',
  252.     119816: u'i',
  253.     119817: u'j',
  254.     119818: u'k',
  255.     119819: u'l',
  256.     119820: u'm',
  257.     119821: u'n',
  258.     119822: u'o',
  259.     119823: u'p',
  260.     119824: u'q',
  261.     119825: u'r',
  262.     119826: u's',
  263.     119827: u't',
  264.     119828: u'u',
  265.     119829: u'v',
  266.     119830: u'w',
  267.     119831: u'x',
  268.     119832: u'y',
  269.     119833: u'z',
  270.     119860: u'a',
  271.     119861: u'b',
  272.     119862: u'c',
  273.     119863: u'd',
  274.     119864: u'e',
  275.     119865: u'f',
  276.     119866: u'g',
  277.     119867: u'h',
  278.     119868: u'i',
  279.     119869: u'j',
  280.     119870: u'k',
  281.     119871: u'l',
  282.     119872: u'm',
  283.     119873: u'n',
  284.     119874: u'o',
  285.     119875: u'p',
  286.     119876: u'q',
  287.     119877: u'r',
  288.     119878: u's',
  289.     119879: u't',
  290.     119880: u'u',
  291.     119881: u'v',
  292.     119882: u'w',
  293.     119883: u'x',
  294.     119884: u'y',
  295.     119885: u'z',
  296.     119912: u'a',
  297.     119913: u'b',
  298.     119914: u'c',
  299.     119915: u'd',
  300.     119916: u'e',
  301.     119917: u'f',
  302.     119918: u'g',
  303.     119919: u'h',
  304.     119920: u'i',
  305.     119921: u'j',
  306.     119922: u'k',
  307.     119923: u'l',
  308.     119924: u'm',
  309.     119925: u'n',
  310.     119926: u'o',
  311.     119927: u'p',
  312.     119928: u'q',
  313.     119929: u'r',
  314.     119930: u's',
  315.     119931: u't',
  316.     119932: u'u',
  317.     119933: u'v',
  318.     119934: u'w',
  319.     119935: u'x',
  320.     119936: u'y',
  321.     119937: u'z',
  322.     119964: u'a',
  323.     119966: u'c',
  324.     119967: u'd',
  325.     119970: u'g',
  326.     119973: u'j',
  327.     119974: u'k',
  328.     119977: u'n',
  329.     119978: u'o',
  330.     119979: u'p',
  331.     119980: u'q',
  332.     119982: u's',
  333.     119983: u't',
  334.     119984: u'u',
  335.     119985: u'v',
  336.     119986: u'w',
  337.     119987: u'x',
  338.     119988: u'y',
  339.     119989: u'z',
  340.     120016: u'a',
  341.     120017: u'b',
  342.     120018: u'c',
  343.     120019: u'd',
  344.     120020: u'e',
  345.     120021: u'f',
  346.     120022: u'g',
  347.     120023: u'h',
  348.     120024: u'i',
  349.     120025: u'j',
  350.     120026: u'k',
  351.     120027: u'l',
  352.     120028: u'm',
  353.     120029: u'n',
  354.     120030: u'o',
  355.     120031: u'p',
  356.     120032: u'q',
  357.     120033: u'r',
  358.     120034: u's',
  359.     120035: u't',
  360.     120036: u'u',
  361.     120037: u'v',
  362.     120038: u'w',
  363.     120039: u'x',
  364.     120040: u'y',
  365.     120041: u'z',
  366.     120068: u'a',
  367.     120069: u'b',
  368.     120071: u'd',
  369.     120072: u'e',
  370.     120073: u'f',
  371.     120074: u'g',
  372.     120077: u'j',
  373.     120078: u'k',
  374.     120079: u'l',
  375.     120080: u'm',
  376.     120081: u'n',
  377.     120082: u'o',
  378.     120083: u'p',
  379.     120084: u'q',
  380.     120086: u's',
  381.     120087: u't',
  382.     120088: u'u',
  383.     120089: u'v',
  384.     120090: u'w',
  385.     120091: u'x',
  386.     120092: u'y',
  387.     120120: u'a',
  388.     120121: u'b',
  389.     120123: u'd',
  390.     120124: u'e',
  391.     120125: u'f',
  392.     120126: u'g',
  393.     120128: u'i',
  394.     120129: u'j',
  395.     120130: u'k',
  396.     120131: u'l',
  397.     120132: u'm',
  398.     120134: u'o',
  399.     120138: u's',
  400.     120139: u't',
  401.     120140: u'u',
  402.     120141: u'v',
  403.     120142: u'w',
  404.     120143: u'x',
  405.     120144: u'y',
  406.     120172: u'a',
  407.     120173: u'b',
  408.     120174: u'c',
  409.     120175: u'd',
  410.     120176: u'e',
  411.     120177: u'f',
  412.     120178: u'g',
  413.     120179: u'h',
  414.     120180: u'i',
  415.     120181: u'j',
  416.     120182: u'k',
  417.     120183: u'l',
  418.     120184: u'm',
  419.     120185: u'n',
  420.     120186: u'o',
  421.     120187: u'p',
  422.     120188: u'q',
  423.     120189: u'r',
  424.     120190: u's',
  425.     120191: u't',
  426.     120192: u'u',
  427.     120193: u'v',
  428.     120194: u'w',
  429.     120195: u'x',
  430.     120196: u'y',
  431.     120197: u'z',
  432.     120224: u'a',
  433.     120225: u'b',
  434.     120226: u'c',
  435.     120227: u'd',
  436.     120228: u'e',
  437.     120229: u'f',
  438.     120230: u'g',
  439.     120231: u'h',
  440.     120232: u'i',
  441.     120233: u'j',
  442.     120234: u'k',
  443.     120235: u'l',
  444.     120236: u'm',
  445.     120237: u'n',
  446.     120238: u'o',
  447.     120239: u'p',
  448.     120240: u'q',
  449.     120241: u'r',
  450.     120242: u's',
  451.     120243: u't',
  452.     120244: u'u',
  453.     120245: u'v',
  454.     120246: u'w',
  455.     120247: u'x',
  456.     120248: u'y',
  457.     120249: u'z',
  458.     120276: u'a',
  459.     120277: u'b',
  460.     120278: u'c',
  461.     120279: u'd',
  462.     120280: u'e',
  463.     120281: u'f',
  464.     120282: u'g',
  465.     120283: u'h',
  466.     120284: u'i',
  467.     120285: u'j',
  468.     120286: u'k',
  469.     120287: u'l',
  470.     120288: u'm',
  471.     120289: u'n',
  472.     120290: u'o',
  473.     120291: u'p',
  474.     120292: u'q',
  475.     120293: u'r',
  476.     120294: u's',
  477.     120295: u't',
  478.     120296: u'u',
  479.     120297: u'v',
  480.     120298: u'w',
  481.     120299: u'x',
  482.     120300: u'y',
  483.     120301: u'z',
  484.     120328: u'a',
  485.     120329: u'b',
  486.     120330: u'c',
  487.     120331: u'd',
  488.     120332: u'e',
  489.     120333: u'f',
  490.     120334: u'g',
  491.     120335: u'h',
  492.     120336: u'i',
  493.     120337: u'j',
  494.     120338: u'k',
  495.     120339: u'l',
  496.     120340: u'm',
  497.     120341: u'n',
  498.     120342: u'o',
  499.     120343: u'p',
  500.     120344: u'q',
  501.     120345: u'r',
  502.     120346: u's',
  503.     120347: u't',
  504.     120348: u'u',
  505.     120349: u'v',
  506.     120350: u'w',
  507.     120351: u'x',
  508.     120352: u'y',
  509.     120353: u'z',
  510.     120380: u'a',
  511.     120381: u'b',
  512.     120382: u'c',
  513.     120383: u'd',
  514.     120384: u'e',
  515.     120385: u'f',
  516.     120386: u'g',
  517.     120387: u'h',
  518.     120388: u'i',
  519.     120389: u'j',
  520.     120390: u'k',
  521.     120391: u'l',
  522.     120392: u'm',
  523.     120393: u'n',
  524.     120394: u'o',
  525.     120395: u'p',
  526.     120396: u'q',
  527.     120397: u'r',
  528.     120398: u's',
  529.     120399: u't',
  530.     120400: u'u',
  531.     120401: u'v',
  532.     120402: u'w',
  533.     120403: u'x',
  534.     120404: u'y',
  535.     120405: u'z',
  536.     120432: u'a',
  537.     120433: u'b',
  538.     120434: u'c',
  539.     120435: u'd',
  540.     120436: u'e',
  541.     120437: u'f',
  542.     120438: u'g',
  543.     120439: u'h',
  544.     120440: u'i',
  545.     120441: u'j',
  546.     120442: u'k',
  547.     120443: u'l',
  548.     120444: u'm',
  549.     120445: u'n',
  550.     120446: u'o',
  551.     120447: u'p',
  552.     120448: u'q',
  553.     120449: u'r',
  554.     120450: u's',
  555.     120451: u't',
  556.     120452: u'u',
  557.     120453: u'v',
  558.     120454: u'w',
  559.     120455: u'x',
  560.     120456: u'y',
  561.     120457: u'z',
  562.     120488: u'\xce\xb1',
  563.     120489: u'\xce\xb2',
  564.     120490: u'\xce\xb3',
  565.     120491: u'\xce\xb4',
  566.     120492: u'\xce\xb5',
  567.     120493: u'\xce\xb6',
  568.     120494: u'\xce\xb7',
  569.     120495: u'\xce\xb8',
  570.     120496: u'\xce\xb9',
  571.     120497: u'\xce\xba',
  572.     120498: u'\xce\xbb',
  573.     120499: u'\xce\xbc',
  574.     120500: u'\xce\xbd',
  575.     120501: u'\xce\xbe',
  576.     120502: u'\xce\xbf',
  577.     120503: u'\xcf\x80',
  578.     120504: u'\xcf\x81',
  579.     120505: u'\xce\xb8',
  580.     120506: u'\xcf\x83',
  581.     120507: u'\xcf\x84',
  582.     120508: u'\xcf\x85',
  583.     120509: u'\xcf\x86',
  584.     120510: u'\xcf\x87',
  585.     120511: u'\xcf\x88',
  586.     120512: u'\xcf\x89',
  587.     120531: u'\xcf\x83',
  588.     120546: u'\xce\xb1',
  589.     120547: u'\xce\xb2',
  590.     120548: u'\xce\xb3',
  591.     120549: u'\xce\xb4',
  592.     120550: u'\xce\xb5',
  593.     120551: u'\xce\xb6',
  594.     120552: u'\xce\xb7',
  595.     120553: u'\xce\xb8',
  596.     120554: u'\xce\xb9',
  597.     120555: u'\xce\xba',
  598.     120556: u'\xce\xbb',
  599.     120557: u'\xce\xbc',
  600.     120558: u'\xce\xbd',
  601.     120559: u'\xce\xbe',
  602.     120560: u'\xce\xbf',
  603.     120561: u'\xcf\x80',
  604.     120562: u'\xcf\x81',
  605.     120563: u'\xce\xb8',
  606.     120564: u'\xcf\x83',
  607.     120565: u'\xcf\x84',
  608.     120566: u'\xcf\x85',
  609.     120567: u'\xcf\x86',
  610.     120568: u'\xcf\x87',
  611.     120569: u'\xcf\x88',
  612.     120570: u'\xcf\x89',
  613.     120589: u'\xcf\x83',
  614.     120604: u'\xce\xb1',
  615.     120605: u'\xce\xb2',
  616.     120606: u'\xce\xb3',
  617.     120607: u'\xce\xb4',
  618.     120608: u'\xce\xb5',
  619.     120609: u'\xce\xb6',
  620.     120610: u'\xce\xb7',
  621.     120611: u'\xce\xb8',
  622.     120612: u'\xce\xb9',
  623.     120613: u'\xce\xba',
  624.     120614: u'\xce\xbb',
  625.     120615: u'\xce\xbc',
  626.     120616: u'\xce\xbd',
  627.     120617: u'\xce\xbe',
  628.     120618: u'\xce\xbf',
  629.     120619: u'\xcf\x80',
  630.     120620: u'\xcf\x81',
  631.     120621: u'\xce\xb8',
  632.     120622: u'\xcf\x83',
  633.     120623: u'\xcf\x84',
  634.     120624: u'\xcf\x85',
  635.     120625: u'\xcf\x86',
  636.     120626: u'\xcf\x87',
  637.     120627: u'\xcf\x88',
  638.     120628: u'\xcf\x89',
  639.     120647: u'\xcf\x83',
  640.     120662: u'\xce\xb1',
  641.     120663: u'\xce\xb2',
  642.     120664: u'\xce\xb3',
  643.     120665: u'\xce\xb4',
  644.     120666: u'\xce\xb5',
  645.     120667: u'\xce\xb6',
  646.     120668: u'\xce\xb7',
  647.     120669: u'\xce\xb8',
  648.     120670: u'\xce\xb9',
  649.     120671: u'\xce\xba',
  650.     120672: u'\xce\xbb',
  651.     120673: u'\xce\xbc',
  652.     120674: u'\xce\xbd',
  653.     120675: u'\xce\xbe',
  654.     120676: u'\xce\xbf',
  655.     120677: u'\xcf\x80',
  656.     120678: u'\xcf\x81',
  657.     120679: u'\xce\xb8',
  658.     120680: u'\xcf\x83',
  659.     120681: u'\xcf\x84',
  660.     120682: u'\xcf\x85',
  661.     120683: u'\xcf\x86',
  662.     120684: u'\xcf\x87',
  663.     120685: u'\xcf\x88',
  664.     120686: u'\xcf\x89',
  665.     120705: u'\xcf\x83',
  666.     120720: u'\xce\xb1',
  667.     120721: u'\xce\xb2',
  668.     120722: u'\xce\xb3',
  669.     120723: u'\xce\xb4',
  670.     120724: u'\xce\xb5',
  671.     120725: u'\xce\xb6',
  672.     120726: u'\xce\xb7',
  673.     120727: u'\xce\xb8',
  674.     120728: u'\xce\xb9',
  675.     120729: u'\xce\xba',
  676.     120730: u'\xce\xbb',
  677.     120731: u'\xce\xbc',
  678.     120732: u'\xce\xbd',
  679.     120733: u'\xce\xbe',
  680.     120734: u'\xce\xbf',
  681.     120735: u'\xcf\x80',
  682.     120736: u'\xcf\x81',
  683.     120737: u'\xce\xb8',
  684.     120738: u'\xcf\x83',
  685.     120739: u'\xcf\x84',
  686.     120740: u'\xcf\x85',
  687.     120741: u'\xcf\x86',
  688.     120742: u'\xcf\x87',
  689.     120743: u'\xcf\x88',
  690.     120744: u'\xcf\x89',
  691.     120763: u'\xcf\x83' }
  692.  
  693. def map_table_b3(code):
  694.     r = b3_exceptions.get(ord(code))
  695.     if r is not None:
  696.         return r
  697.     
  698.     return code.lower()
  699.  
  700.  
  701. def map_table_b2(a):
  702.     al = map_table_b3(a)
  703.     b = unicodedata.normalize('NFKC', al)
  704.     bl = []([ map_table_b3(ch) for ch in b ])
  705.     c = unicodedata.normalize('NFKC', bl)
  706.  
  707.  
  708. def in_table_c11(code):
  709.     return code == u' '
  710.  
  711.  
  712. def in_table_c12(code):
  713.     if unicodedata.category(code) == 'Zs':
  714.         pass
  715.     return code != u' '
  716.  
  717.  
  718. def in_table_c11_c12(code):
  719.     return unicodedata.category(code) == 'Zs'
  720.  
  721.  
  722. def in_table_c21(code):
  723.     if ord(code) < 128:
  724.         pass
  725.     return unicodedata.category(code) == 'Cc'
  726.  
  727. c22_specials = set([
  728.     1757,
  729.     1807,
  730.     6158,
  731.     8204,
  732.     8205,
  733.     8232,
  734.     8233,
  735.     65279] + range(8288, 8292) + range(8298, 8304) + range(65529, 65533) + range(119155, 119163))
  736.  
  737. def in_table_c22(code):
  738.     c = ord(code)
  739.     if c < 128:
  740.         return False
  741.     
  742.     if unicodedata.category(code) == 'Cc':
  743.         return True
  744.     
  745.     return c in c22_specials
  746.  
  747.  
  748. def in_table_c21_c22(code):
  749.     if not unicodedata.category(code) == 'Cc':
  750.         pass
  751.     return ord(code) in c22_specials
  752.  
  753.  
  754. def in_table_c3(code):
  755.     return unicodedata.category(code) == 'Co'
  756.  
  757.  
  758. def in_table_c4(code):
  759.     c = ord(code)
  760.     if c < 64976:
  761.         return False
  762.     
  763.     if c < 65008:
  764.         return True
  765.     
  766.     return ord(code) & 65535 in (65534, 65535)
  767.  
  768.  
  769. def in_table_c5(code):
  770.     return unicodedata.category(code) == 'Cs'
  771.  
  772. c6_set = set(range(65529, 65534))
  773.  
  774. def in_table_c6(code):
  775.     return ord(code) in c6_set
  776.  
  777. c7_set = set(range(12272, 12284))
  778.  
  779. def in_table_c7(code):
  780.     return ord(code) in c7_set
  781.  
  782. c8_set = set([
  783.     832,
  784.     833,
  785.     8206,
  786.     8207] + range(8234, 8239) + range(8298, 8304))
  787.  
  788. def in_table_c8(code):
  789.     return ord(code) in c8_set
  790.  
  791. c9_set = set([
  792.     917505] + range(917536, 917632))
  793.  
  794. def in_table_c9(code):
  795.     return ord(code) in c9_set
  796.  
  797.  
  798. def in_table_d1(code):
  799.     return unicodedata.bidirectional(code) in ('R', 'AL')
  800.  
  801.  
  802. def in_table_d2(code):
  803.     return unicodedata.bidirectional(code) == 'L'
  804.  
  805.